Ragel compiles executable finite state machines from regular languages.
It targets C, C++, and Ruby. Ragel state machines can not only recognize
byte sequences as regular expression machines do, but can also execute
code at arbitrary points in the recognition of a regular language. Code
embedding is done using inline operators that do not disrupt the regular
language syntax.
